package org.subatu.orm.query.condition;


import org.subatu.orm.query.base.BaseSql;
import org.subatu.orm.util.ChkUtil;

/**
 * 查询
 */
public interface Where<T extends Condition> extends BaseSql {

    // StringBuilder sqlData().whereSql = new StringBuilder();

    default T where() {
        sqlData().isWhere.flag = 1;

        return (T) this;
    }

    default T where(String sql) {
        this.where();

        sqlData().whereSql.setLength(0);
        sqlData().whereSql.append(sql);
        return (T) this;
    }

    default String buildWhereSql() {
        if (sqlData().whereSql.length() > 0 || ChkUtil.isNull(sqlData().whereList)) {
            // 如果手工设置了 sql, 直接返回
            return sqlData().whereSql.toString();
        }

        sqlData().whereSql.setLength(0);
        sqlData().whereSql.append(" where ");

        String allCondSql = getAllCondSql(sqlData().whereList);
        sqlData().whereSql.append(allCondSql);

        return sqlData().whereSql.toString();
    }


}
